#include "head.h"

int sendFile(int net_fd){

    char* filename = "1.txt";
    
    // 先发文件名长度
    int filename_len = strlen(filename);
    int ret = send(net_fd, &filename_len, sizeof(int), 0);
    ERROR_CHECK(ret, -1, "send1");
    // 再发文件名
    ret = send(net_fd, filename, filename_len, 0);
    ERROR_CHECK(ret, -1, "send2");

    // 打开文件
    int file_fd = open(filename, O_RDWR, 0666);
    ERROR_CHECK(file_fd, -1, "open");
    
    // 获取文件大小
    struct stat st;
    ret = fstat(file_fd, &st);
    ERROR_CHECK(ret, -1, "fstat");

    // 发送文件大小
    ret = send(net_fd, &st.st_size, sizeof(off_t), MSG_NOSIGNAL);
    ERROR_CHECK(ret, -1, "send3");

    sendfile(net_fd, file_fd, 0, st.st_size);
        
    close(file_fd);
}
